package BO;

import java.util.List;

import CORE.GenericBO;
import DAO.ObraDAO;
import DTO.AutorDTO;
import DTO.ObraDTO;
import DTO.UsuarioDTO;

public class ObraBO extends GenericBO<ObraDTO> {

	public ObraBO() {
		super(new ObraDAO());
	}		
	
	public List<ObraDTO> pesquisarObrasMaisLidas(){
		try {
			return ((ObraDAO) dao).pesquisarObrasMaisLidas();
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> pesquisarObrasDestaque(){
		try {
			return ((ObraDAO) dao).pesquisarObrasDestaque();
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> pesquisarLivrosPorTitulo(ObraDTO obraDTO){
		try {
			return ((ObraDAO) dao).pesquisarLivrosPorTitulo(obraDTO);
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> pesquisarColecoesPorTitulo(ObraDTO obraDTO){
		try {
			return ((ObraDAO) dao).pesquisarColecoesPorTitulo(obraDTO);
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> pesquisarTodosLivros(){
		try {
			return ((ObraDAO) dao).pesquisarTodosLivros();
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> pesquisarTodasColecoes(){
		try {
			return ((ObraDAO) dao).pesquisarTodasColecoes();
		} catch (Exception e) {
			return null;
		}
	}
	
	public ObraDTO pesquisarPorTitulo(String titulo){
		try {
			return ((ObraDAO) dao).pesquisarPorTitulo(titulo);
		} catch (Exception e) {
			return null;
		}
	}
	
	public boolean existe(ObraDTO obraDTO){
		try {
			return ((ObraDAO) dao).existe(obraDTO);
		} catch (Exception e) {
			return false;
		}
	}
	
	public List<ObraDTO> pesquisarObrasDoAutor(AutorDTO autor){
		try {
			return ((ObraDAO) dao).pesquisarObrasDoAutor(autor);
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> naoPesquisarLivrosDaColecao(ObraDTO obraDTO){
		try {
			return ((ObraDAO) dao).naoPesquisarLivrosDaColecao(obraDTO);
		} catch (Exception e) {
			return null;
		}
	}
	
	public List<ObraDTO> pesquisarLivrosDaColecao(ObraDTO obraDTO){
		try {
			return ((ObraDAO) dao).pesquisarLivrosDaColecao(obraDTO);
		} catch (Exception e) {
			return null;
		}
	}		
}